In the context of a service-oriented architecture, a service provides software functionality in such a way that disparate systems are interoperable. The software functionality provided by a service often encompasses business logic. For each service, there will be at least one service provider and any number of service clients configured to communicate with the service provider(s).
The service provider is associated with an application programming interface (API), which defines how the service may be accessed, for example, through method or procedure calls. The service clients are configured to make service API calls, which are sent to the service provider. The service provider is configured to provide data to the service client in response to a service API call, often in the form of a data object. As service providers and service clients may be executing on different computer systems, such data objects may be serialized and then transmitted over an appropriate data communications network.